GtkFontChooser: Fix segmentation fault in deprecated size list population
authorAlberto Ruiz <aruiz@gnome.org>
Thu, 28 Apr 2011 00:20:44 +0000 (01:20 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 15 Aug 2011 22:57:53 +0000 (18:57 -0400)
gtk/gtkfontchooser.c
tests/testfontselection.c

index 2fc0aa40bd6c5496641526cb40d6f860281002b6..4fb70e8db430b5b6f48dd3110f2ae7644a12cc43 100644 (file)
@@ -442,7 +442,7 @@ set_range_marks (GtkFontSelectionPrivate *priv,
         {
           GtkTreeIter iter;
 
-          g_string_printf ("%d", sizes[i]);
+          g_string_printf (size_str, "%d", sizes[i]);
 
           gtk_scale_add_mark (GTK_SCALE (size_slider),
                               (gdouble) sizes[i],
@@ -471,7 +471,7 @@ cursor_changed_cb (GtkTreeView *treeview, gpointer data)
   GtkTreeIter iter;
   GtkTreePath *path = gtk_tree_path_new ();
   
-  GtkFontSelection        *fontsel = (GtkFontSelection*)data;
+  GtkFontSelection *fontsel = (GtkFontSelection*)data;
   
   gtk_tree_view_get_cursor (treeview, &path, NULL);
   
@@ -1032,8 +1032,10 @@ gtk_font_selection_get_family_list (GtkFontSelection *fontsel)
 {
   GtkFontSelectionPrivate *priv = fontsel->priv;
   g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
+  if (!priv->font_list)
+    initialize_deprecated_widgets (fontsel);
 
-  return NULL;
+  return priv->font_list;
 }
 
 /**
@@ -1052,8 +1054,10 @@ gtk_font_selection_get_face_list (GtkFontSelection *fontsel)
 {
   GtkFontSelectionPrivate *priv = fontsel->priv;
   g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
+  if (!priv->face_list)
+    initialize_deprecated_widgets (fontsel);
 
-  return NULL;
+  return priv->face_list;
 }
 
 /**
@@ -1091,8 +1095,10 @@ gtk_font_selection_get_size_list (GtkFontSelection *fontsel)
 {
   GtkFontSelectionPrivate *priv = fontsel->priv;
   g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
+  if (!priv->size_list)
+    initialize_deprecated_widgets (fontsel);
 
-  return NULL;
+  return priv->size_list;
 }
 
 /**
@@ -1132,7 +1138,7 @@ gtk_font_selection_get_family (GtkFontSelection *fontsel)
 {
   g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
 
-  return NULL;
+  return fontsel->priv->family;
 }
 
 /**
@@ -1153,7 +1159,7 @@ gtk_font_selection_get_face (GtkFontSelection *fontsel)
 {
   g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL);
 
-  return NULL;
+  return fontsel->priv->face;
 }
 
 /**
index 0b721f5b59d2b27ea351a0da0ebc3f761c142940..42efdc14fd289bdb2a5a02d7d861046634f865fb 100644 (file)
@@ -35,13 +35,14 @@ main (int argc, char *argv[])
   dialog = gtk_font_selection_dialog_new (NULL);
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_widget_set_size_request (window, 300, 300);
   vbox = gtk_vbox_new (TRUE, 6);
   gtk_container_add (GTK_CONTAINER (window), vbox);
 
   fontsel = gtk_font_selection_dialog_get_font_selection (GTK_FONT_SELECTION_DIALOG (dialog));
-  gtk_container_add (GTK_CONTAINER (window), gtk_font_selection_get_size_list (GTK_FONT_SELECTION (fontsel)));
-  gtk_container_add (GTK_CONTAINER (window), gtk_font_selection_get_family_list (GTK_FONT_SELECTION (fontsel)));
-  gtk_container_add (GTK_CONTAINER (window), gtk_font_selection_get_face_list (GTK_FONT_SELECTION (fontsel)));
+  gtk_container_add (GTK_CONTAINER (vbox), gtk_font_selection_get_size_list (GTK_FONT_SELECTION (fontsel)));
+  gtk_container_add (GTK_CONTAINER (vbox), gtk_font_selection_get_family_list (GTK_FONT_SELECTION (fontsel)));
+  gtk_container_add (GTK_CONTAINER (vbox), gtk_font_selection_get_face_list (GTK_FONT_SELECTION (fontsel)));
 
   gtk_widget_show_all (window);